package com.assignwork.service;

import com.assignwork.dto.WorkArrangeShipUnderMachineSubmitDTO;
import com.assignwork.entity.WorkArrangeShipUnderMachine;
import com.assignwork.vo.WorkArrangeShipUnderMachineVO;
import org.springblade.core.mp.base.BaseService;

import java.util.List;
import java.util.Set;

/**
 * @ClassName IWorkArrangeShipUnderMachineService
 * @Description 航运配工下舱机械接口
 * @Author dujianyu
 * @Date 2023/12/22 12:29
 */
public interface IWorkArrangeShipUnderMachineService extends BaseService<WorkArrangeShipUnderMachine> {
    /**
     * 根据舱信息id返回下舱机械信息
     * @param cabinInfoId 舱信息ID
     * @return List<WorkArrangeShipUnderMachineVO>
     * @author dujianyu
     * @since 2023/12/22 12:41
     */
    List<WorkArrangeShipUnderMachineVO> infoByCabinInfoId(Long cabinInfoId);

    /**
     * 提交下舱机械
     * @param arrangeId 配工ID
     * @param cabinInfoId 舱信息ID
     * @param underMachines 下舱机械信息
     * @return boolean
     * @author dujianyu
     * @since 2023/12/22 13:21
     */
    boolean submitWaShipUnderMachine(Long arrangeId, Long cabinInfoId, List<WorkArrangeShipUnderMachineSubmitDTO> underMachines);

    /**
     * 根据配工ID删除信息
     * @param arrangeId 配工ID
     * @return boolean
     * @author dujianyu
     * @since 2023/12/22 8:12
     */
    boolean removeByArrangeId(Long arrangeId);

    boolean removeByArrangeId(Long arrangeId, Set<Long> exclude);

    List<WorkArrangeShipUnderMachineVO> infoByArrangeId(Long arrangeId);
}
